package cn.edu.scau.cmi.ema.dao;

import cn.edu.scau.cmi.ema.base.CmiPagination;
import cn.edu.scau.cmi.ema.domain.Foodadditive;
import org.springframework.dao.DataAccessException;

import java.math.BigDecimal;
import java.util.Set;

public interface FoodadditiveDAO extends JpaDao<Foodadditive> {

	public Foodadditive findFoodadditiveById(Integer id) throws DataAccessException;

	public Foodadditive findFoodadditiveById(Integer id, int startResult, int maxRows) throws DataAccessException;

	public Set<Foodadditive> findFoodadditiveByName(String name) throws DataAccessException;

	public Set<Foodadditive> findFoodadditiveByName(String name, int startResult, int maxRows)
			throws DataAccessException;

	public Set<Foodadditive> findFoodadditiveByNameContaining(String name_1) throws DataAccessException;

	public Set<Foodadditive> findFoodadditiveByNameContaining(String name_1, int startResult, int maxRows)
			throws DataAccessException;

	public Set<Foodadditive> findFoodadditiveByContent(BigDecimal content) throws DataAccessException;

	public Set<Foodadditive> findFoodadditiveByContent(BigDecimal content, int startResult, int maxRows)
			throws DataAccessException;

	public Set<Foodadditive> findFoodadditiveByDescription(String description) throws DataAccessException;

	public Set<Foodadditive> findFoodadditiveByDescription(String description, int startResult, int maxRows)
			throws DataAccessException;

	public Set<Foodadditive> findFoodadditiveByDescriptionContaining(String description_1) throws DataAccessException;

	public Set<Foodadditive> findFoodadditiveByDescriptionContaining(String description_1, int startResult, int maxRows)
			throws DataAccessException;

	public Foodadditive findFoodadditiveByPrimaryKey(Integer id) throws DataAccessException;

	public Foodadditive findFoodadditiveByPrimaryKey(Integer id, int startResult, int maxRows)
			throws DataAccessException;

	public Set<Foodadditive> findFoodadditivesByIds(Set<Integer> ids) throws DataAccessException;

	public Set<Foodadditive> findAllFoodadditives() throws DataAccessException;

	public Set<Foodadditive> findAllFoodadditives(int startResult, int maxRows) throws DataAccessException;

	public Set<Foodadditive> findFoodadditivesByAdditive(Integer additiveId, int start, int max);

	public Set<Foodadditive> findFoodadditivesByFood(Integer foodId, int start, int max);

	public Set<Foodadditive> findFoodadditiveByCompositeProperities(String sql, int startResult, int maxRows)
			throws DataAccessException;

	public Set<Foodadditive> findFoodadditivesByDetachedCriteria(CmiPagination page) throws DataAccessException;

	public Foodadditive findFoodadditiveByPhysicalPrimaryKey(Integer foodId, Integer additiveId, BigDecimal content)
			throws DataAccessException;

	public Foodadditive findFoodadditiveByPhysicalPrimaryKey(Integer foodId, Integer additiveId, BigDecimal content,
			int startResult, int maxRows) throws DataAccessException;
}
